package com.acoresoft.sm.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.session.RowBounds;

import com.acoresoft.sm.entity.User;

/**
 * @author WallenHeng
 * @date 2014年6月10日 上午8:54:51
 *
 */
public interface UserMapper {

	/**
	 * 新增用户
	 * @param user
	 */
	public void addUser(User user);

	/**
	 * 编辑用户
	 * @param user
	 */
	public void editUser(User user);

	/**
	 * 删除
	 * @param userId
	 */
	public void delUser(String userId);
	/**
	 * 判断用户是否存在
	 * @param user
	 * @return
	 */
	public int checkUserExits(User user);

	/**
	 * 查询所有用户
	 * @return
	 */
	public List<User> getUserList();

	/**
	 * 根据用户id获取用户
	 * @param userId
	 * @return
	 */
	public User getUserByUid(String userId);

	/**
	 * 查询用户总数
	 * @return
	 */
	public Long getCounts();

	/**
	 * 查询用户
	 * @param paramMap
	 * @return
	 */
	public List<User> getUserListByQuery(Map<String, Object> paramMap);

	/**
	 * 查询用户
	 * @param user
	 * @return
	 */
	public List<User> getUserListByQueryUser(User user);

	/**
	 * 根据id集合查询用户
	 * @param uids
	 * @return
	 */
	public List<User> getUserByUids(List<String> uids);

	/**
	 * 动态sql分页查询
	 * @param objs
	 * @param rw
	 * @return
	 */
	public List<Object[]> getUserDynamicSql(Object[] objs, RowBounds rw);

	/**
	 * 
	 * @param params
	 * @param rw
	 * @return
	 */
	public List<User> pageList(Map<String, Object> params, RowBounds rw);

	/**
	 * 分页数据
	 * @param params
	 * @return
	 */
	public List<User> pageList(Map<String, Object> params);

	/**
	 * 分页总条数
	 * @param p
	 * @return
	 */
	public Long pageCounts(Map<String, Object> p);

	public List<User> selectAll(RowBounds rowBounds);
}
